Calibrating servos

ABSTRACT

Methods, systems, and apparatus, including computer program products, are described for calibrating servos, and in some implementations for calibrating spiral servos for use in self servo write processes. In one aspect, a method is provided that includes measuring a slope of a spiral written to a machine readable medium, and adjusting a parameter in accordance with the measured slope to calibrate spacing of servo tracks, with respect to variation between a target slope and the measured slope for the spiral, for writing the servo tracks to the machine readable medium using the spiral as a reference and the adjusted parameter to generate a same radial spacing between servo tracks from spirals with different slopes.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of priorityto U.S. application Ser. No. 12/838,016, now, U.S. Pat. No. 8,194,343for “Calibrating Servos”, filed on Jul. 16, 2010, which is incorporatedby reference herein in its entirety, which is a continuation applicationof and claims priority to U.S. application Ser. No. 12/192,981, now U.S.Pat. No. 7,773,335 for “Calibrating Servos,” filed on Aug. 15, 2008,which is incorporated by reference herein in its entirety, which claimspriority to U.S. Provisional Application Ser. No. 60/956,001, for“Method to Control Track Pitch in a Self-Servowrite Process,” filed onAug. 15, 2007, which is incorporated by reference herein in itsentirety.

TECHNICAL FIELD

The subject matter of this specification relates to servos.

BACKGROUND

In magnetic-medium-based storage devices, data can be stored oncircular, concentric tracks on a magnetic disk surface. A read/writehead can retrieve and record data on a magnetic layer of a rotating diskas the head flies on a cushion of air over the disk surface. Whenretrieving data, magnetic field variations can be converted into ananalog electrical signal, which can then be amplified and converted to adigital signal for signal processing. To guarantee the quality of theinformation stored on and read back from the disk, the read/write headneeds to be precisely positioned at substantially the center of a trackduring both writing and reading. A closed-loop servo system, driven byservo information embedded in a dedicated portion of the track, can beused as a reference for positioning the head.

The servo information generally defines the position of the data tracksand is generally written with great accuracy to ensure that the headservo system operates properly. The servo information can be written oneach surface as a radially extending set of spokes or wedges. Theportion of a servo wedge at a particular track location may contain async field, and index mark, a gray coded track number, and two or morefine-positioned offset bursts configured in an echelon across the track.Head positioning relative to a track center can be determined andcorrected, if necessary, by reading and noting the respective amplitudesand timings of the offset bursts.

A servo writer can be used to write the embedded servo information onthe disk surface. A servo writer can include a large base (e.g., granitebase) to minimize the effects of vibration. The servo writer also mayuse precision fixtures to hold the target drive, a precision,laser-interferometer-based actuator arm positioning mechanism to placethe arms radially with respect to the axis of rotation of the disks inthe drive, and an external clock head to position the servo wedges intime. Conventional servo writers are typically large in size andexpensive to be manufactured. Further, as track density increases, theservo writing time required to write the servo information alsoincreases, which can create a bottleneck in the disk drive manufacturingprocess.

Conventional hard disk drives (HDD) increasingly use self-servo-write(SSW) processes to write servo sectors using the same heads that areused to read/write data. In some implementations, servo patterns can bewritten on a machine readable medium for position control. For example,spirals can be written on a machine readable medium. A servo can use thespirals (e.g., servo on the spirals) to position heads to write servotracks. Typically, the servo moves in a radial direction across thespirals and measures the time shifts of the spirals. For example, a timeshift of a spiral can be defined as an amount of time that correspondsto a difference in circumferential distance from one radial location ona spiral to another radial location on the spiral. The servo candetermine radial position measurements from the measured time shifts.The measured time shifts depend on a slope of the spiral. Therefore, theslope of the spiral can affect the placement of individual servo tracksand radial spacing between the servo tracks. Variations or inaccuraciesin the slope of the spiral can result in imprecise radial spacingbetween servo tracks.

SUMMARY

Methods, systems, and apparatus, including computer program products,are described for calibrating servos, and in some implementations forcalibrating spiral servos for use in self-servo-write processes.

In one aspect, an apparatus is provided that includes a processingmodule that determines a measured slope of a spiral, and a calibrationmodule that calibrates radial spacing between servo tracks using themeasured slope and a target slope. Other embodiments of this aspectinclude corresponding systems, methods, and computer program products.

One or more implementations can optionally include one or more of thefollowing features. The calibration module can include a scalingsubmodule that scales target timing information according to a ratio ofthe target slope to the measured slope to determine the radial spacing.The calibration module can include a scaling submodule that scales atarget track pitch according to a ratio of the target slope to themeasured slope to determine the radial spacing. The processing modulecan include a scaling submodule that calibrates the measured slope ofthe spiral. The processing module can include a detection submodule thatdetermines a gain of a system that includes a voice coil motor and aservo signal. The processing module can include a detection submodulethat determines an integrated magnitude of the spiral. The processingmodule can include a correction submodule that determines noise in theintegrated magnitude and removes the noise from the integratedmagnitude. The processing module can include a detection submodule thatdetermines a difference between a predicted frequency and an actualfrequency of the spiral.

In another aspect, a method is provided that includes determining ameasured slope of a spiral, and calibrating radial spacing between servotracks using the measured slope and a target slope. Other embodiments ofthis aspect include corresponding systems, apparatus, and computerprogram products.

One or more implementations can optionally include one or more of thefollowing features. Calibrating radial spacing can include receivingtarget timing information; scaling the target timing informationaccording to a ratio of the target slope to the measured slope,producing calibrated timing information; and determining the radialspacing using the calibrated timing information. Calibrating radialspacing can include receiving a target track pitch; scaling the targettrack pitch according to a ratio of the target slope to the measuredslope, producing a calibrated track pitch; and determining the radialspacing using the calibrated track pitch.

The spiral can be previously written. Determining a measured slope of aspiral can include determining a first measurement of the measured slopeof the spiral; and calibrating the first measurement of the measuredslope of the spiral, producing a second measurement of the measuredslope of the spiral.

Determining a measured slope of a spiral can include determining a gainof a system that includes a voice coil motor and a servo signal. Thegain can be a mechanical gain. A magnitude of the gain can be inverselyproportional to a magnitude of the measured slope. Determining the gaincan include injecting a signal into a controller, determining a controlcommand and a position error, and determining a ratio of the positionerror to the control command. The method can further include controllingthe voice coil motor with the controller. The position error and thecontrol command can be determined in the frequency domain.

Determining a measured slope of a spiral can include determining anintegrated magnitude of a first signal that includes the spiral. Theintegrated magnitude can be inversely proportional to the measured slopeof the spiral. The method can further include determining noise in theintegrated magnitude, and removing the noise from the integratedmagnitude. Determining noise can include determining a magnitude of thefirst signal at an edge of an integration window, and multiplying themagnitude by a number of samples in the integration window. In addition,determining noise can include determining a minimum magnitude of thefirst signal in an integration window, and multiplying the minimummagnitude by a number of samples in the integration window. Furthermore,determining noise can include determining an integrated magnitude of asecond signal that does not include the spiral.

Determining a measured slope of a spiral can include determining apredicted frequency for writing the spiral; determining an actualfrequency of the spiral; and determining a difference between a targetvelocity and an actual velocity, where the difference is proportional toa difference between the predicted frequency and the actual frequency.Determining an actual frequency of the spiral can include determining atime between sync patterns of the spiral.

Particular embodiments of the subject matter described in thisspecification can be implemented to realize none, one or more of thefollowing advantages. Calibrating spiral servos for use inself-servo-write processes can (i) increase the accuracy of servo trackplacement; (ii) increase the accuracy of radial spacing between servotracks; (iii) increase the yield of useable hard disk drives; and (iv)increase the reliability of hard disk drives by reducing servo issues(e.g., interference between servo tracks) and data track encroachment.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram showing an example hard disk drive.

FIG. 2A is a diagram showing an example machine readable medium thatincludes spirals and servo tracks.

FIG. 2B is a diagram showing another example machine readable mediumthat includes spirals and servo tracks.

FIG. 3A is a diagram showing example spirals and servo tracks of FIG.2A.

FIG. 3B is a diagram showing example spirals and servo tracks of FIG.2B.

FIG. 4A is a diagram that includes the example spirals of FIG. 3A.

FIG. 4B is a diagram that includes the example spirals of FIG. 3B.

FIG. 5 includes plots showing example mechanical gains.

FIG. 6 is a flow chart showing an example process for determining aslope of a spiral.

FIG. 7 includes plots showing example spiral magnitudes and exampleintegrated spiral magnitudes.

FIGS. 8A and 8B are plots showing example read signals and examplespiral windows.

FIG. 9 is a flow chart showing another example process for determining aslope of a spiral.

FIG. 10 is a flow chart showing another example process for determininga slope of a spiral.

FIG. 11 is a flow chart showing an example process for calibratingradial spacing between servo tracks.

FIGS. 12A-12G show various example implementations of the describedsystems and techniques.

DETAILED DESCRIPTION

FIG. 1 is a diagram showing an example hard disk drive. The hard diskdrive includes a head-disk assembly 100 and drive electronics 150. Thehead-disk assembly 100 includes machine readable mediums 110 (e.g.,disks), a motor assembly 115, a head assembly 120, arms 130, and heads132 (e.g., read/write heads). The drive electronics 150 includes a servocontrol 160 (e.g., a servo controller), signal processing circuitry 170,and a control 180 (e.g., a controller). The control 180 can direct theservo control 160 to control mechanical operations of the head-diskassembly 100. For example, the control 180 can direct the servo control160 to position the heads 132 using the arms 130. As another example,the control 180 can direct the servo control 160 to control therotational speed of the machine readable mediums 110, through the motorassembly 115. The signal processing circuitry 170 can include aprocessing module 172 and a calibration module 174. The processingmodule 172 can process read signals, write signals, and servo signals,for example. The calibration module 174 can calibrate the signals,timing information, and track pitch, for example.

FIG. 2A is a diagram showing an example machine readable medium 200 thatincludes spirals 210 and servo tracks 220. The spirals 210 can bewritten at a first speed that results in a first slope for the spirals210. A servo can move, for example, in a radial direction and use thespirals 210 to control head position, and a head can write the servotracks 220. For example, the servo can move the head to a location wherethe circumferential location of the spiral has shifted a predeterminedamount of time (e.g. a spiral shift time) to determine the radialspacing between servo tracks. The radial spacing between the servotracks can define the track pitch (e.g., radial track density).

FIG. 2B is a diagram showing another example machine readable medium 250that includes spirals 230 and servo tracks 240. The spirals 230 can bewritten at a second speed that results in a second slope for the spirals230. The first speed can be greater than the second speed. Therefore,the spirals 210 can be referred to as “faster written” spirals, and thespirals 230 can be referred to as “slower written” spirals. Generally,faster written spirals have slopes that are greater than the slopes ofslower written spirals. Because the spirals are used to write servotracks, the slopes can affect the radial spacing between servo tracks.

FIG. 3A is a diagram showing example spirals and servo tracks of FIG.2A. FIG. 3B is a diagram showing example spirals and servo tracks ofFIG. 2B. In some implementations, a servo moves in a radial directionuntil a spiral has shifted a predetermined amount of time t to alocation to write a servo track. For example, referring to FIG. 3A, theservo control 160 can control a head 132 to move from a first servotrack 302, until the circumferential location of spiral 210 has shifteda predetermined amount of time t to a second servo track 304. Then, thehead 132 can write a servo track. Radial spacing 310 can be defined, forexample, by the radial distance between adjacent servo tracks (e.g.,servo tracks 302 and 304).

Referring to FIG. 3B, the spiral 230 is a slower written spiral and hasa slope less than the slope of the spiral 210 of FIG. 3A. Moving untilthe circumferential location of spiral 230 has shifted for thepredetermined amount of time t, the head 132 can travel from a thirdservo track 312, to a fourth servo track 314. The radial spacing 320between the third servo track 312 and the fourth servo track 314 is lessthan the radial spacing between the first track 302 and the second servotrack 304 of FIG. 3A.

In some implementations, the spirals have previously been written on themachine readable medium. In order to generate substantially a sameradial spacing between servo tracks from spirals with different slopes,the predetermined amount of time t can be calibrated.

FIG. 4A is a diagram that includes the example spirals of FIG. 3A. FIG.4B is a diagram that includes the example spirals of FIG. 3B. Referringto FIGS. 4A and 4B, the predetermined amount of time t can be calibratedso that the predetermined amount of time is decreased for spirals thathave a slope greater than a target slope.

The slope of the spiral determines a relationship between acircumferential location of the spiral and the radial location of thehead. The relationship can be expressed as:radial_location∝slope·t.

The radial location of the head can be determined by determining thecircumferential location of the spiral, which can be represented byspiral timing. For example, increased circumferential movement of thespiral (e.g., increase in the amount of time shift of the spiral)corresponds to increased radial movement.

Because the spiral 210 is a faster written spiral and has a greaterslope, the head 132 travels a greater radial distance for the samepredetermined amount of time t (e.g., a first spiral shift time) of thefaster spiral than a slower written spiral. Therefore, the predeterminedamount of time t can be calibrated to equal t1, so that the head 132travels a substantially same radial distance 410 as the radial distance420 traveled with the predetermined amount of time t2 (e.g., a secondspiral shift time) on the slower written spiral 230.

The slope of a spiral can be determined and used to calibrate thepredetermined amount of time. By adjusting the predetermined amount oftime, the radial distance between servo tracks can be calibrated. Theradial distance between servo tracks, on a single machine readablemedium or among different machine readable mediums, for example, can becalibrated so that the radial distances between servo tracks aresubstantially the same.

In some implementations, the slope can be determined by determining again of a voice coil motor (e.g., a voice coil motor in the motorassembly 115). The processing module 174 can include, for example, adetection submodule that determines the gain of the voice coil motor.For example, the mechanical gain of the voice coil motor can be measuredperiodically as the heads move across the machine readable medium, asdescribed in further detail below. In some implementations, the slopecan be determined by determining a “red-shift” of the pattern within thespiral. The processing module 174 can include, for example, a detectionsubmodule that determines the “red-shift” of the pattern within thespiral. For example, the “red-shift” of the pattern within the spiralcan be measured as the head moves across the machine readable medium, asdescribed in further detail below. In some implementations, the slopecan be determined by determining an integrated magnitude of the spiral.The processing module 174 can include, for example, a detectionsubmodule that determines the integrated magnitude of the spiral. Forexample, the integrated magnitude of the spiral can be measured as thehead moves across the machine readable medium, as described in furtherdetail below.

In some implementations, a plurality of the aforementionedimplementations can be used in combination to determine the slope. Forexample, determining an integrated magnitude of a spiral can provide arelative measurement of the slope of the spiral. The relativemeasurement can be calibrated using measurements of the slope determinedfrom the gain of the voice coil motor, or from the “red-shift” of thepattern within the spiral. The processing module 174 can include, forexample, a scaling submodule that calibrates the relative measurement ofthe slope. For example, the mechanical gain and the integrated magnitudecan be used to determine the slope of one or more spirals at a firstradial location. The slope of the one or more spirals at a first radiallocation, determined by the mechanical gain, can be compared to theslope of the one or more spirals at the first radial location,determined by the integrated magnitude, and used as a reference tocalibrate integrated magnitude measurements of slopes of the one or morespirals at other radial locations. As another example, the “red-shift”can be used to determine the slope that is used as a reference tocalibrate the integrated magnitude measurements of the slopes of the oneor more spirals at the other radial locations. Other implementations arepossible.

FIG. 5 includes plots 500 and 550 showing example mechanical gains 510,520, 530, and 540. A mechanical gain can define a reaction of a measuredlocation of a head (e.g., radial position) to a control command from thecontroller 180, for example. The control command can be, for example, acurrent to adjust the velocity of a voice coil motor. Components of ahard disk drive that can affect the mechanical gain can include, but arenot limited to, the voice coil motor, arm mechanics (e.g., head assembly120 and arms 130), and the servo signal (e.g., a spiral signal).Characteristics of the servo signal can be determined from a measuredmechanical gain. For example, a slope of a spiral can be determined fromthe measured mechanical gain. In some implementations, the measuredmechanical gain can be expressed as the product of a voice coil motor(VCM) gain, electrical gain, and other fixed mechanical gains, dividedby the slope of the spiral. Therefore, the slope of the spiral can beexpressed as:

${Spiral\_ slope} = {\frac{{{VCM\_ gain} \cdot {Electrical\_ gain} \cdot {Other\_ fixed}}{\_ mechanical}{\_ gains}}{{Measured\_ mechanical}{\_ gain}}.}$

The magnitude of a gain (e.g., the measured mechanical gain) isinversely proportional to a magnitude of the slope of the spiral.Referring to plot 500, the difference between the gains 510 and 520 canshow the difference between the slopes of the spirals. For example, at afrequency of 502 Hz, the difference between the gain 510 of a slowerwritten spiral and the gain 520 of a faster written spiral can show thedifference between the slopes of the spirals. The track pitch of servotracks written using the slower written spiral and the faster writtenspiral will include a difference that is proportional to the differencebetween the slopes. Spirals with a substantially similar mechanical gain(e.g., as shown in the gains 530 and 540), will produce written servotracks with substantially similar track pitches.

In some implementations, the gain can be determined by injecting asignal into a controller (e.g., controller 180). For example, adisturbance signal can be injected into position sensing firmware whilecontrolling a head to stay on a predetermined path. A resulting controlcommand and position error can be measured. The mechanical gain can becalculated as the ratio of the measured position error (e.g., timingerror) to the control command, in the frequency domain. In someimplementations, the measurement and injection can be performed at asingle frequency (e.g., at 502 Hz in plot 500).

FIG. 6 is a flow chart showing an example process 600 for determining aslope of a spiral. The process can include injecting 610 a signal into acontroller. For example, the calibration module 172 can inject a signalinto the control 180. A control command and a position error can bedetermined 620. For example, the processing module 174 can determine acontrol command and a position error. A ratio of the position error tothe control command can be determined 630. For example, the calibrationmodule 172 can determine a ratio of the position error to the controlcommand.

FIG. 7 includes plots showing example spiral magnitudes 710 and 720, andexample integrated spiral magnitudes 715 and 725. A reader (e.g., a readhead) can read a portion of the spiral 210 to determine a spiralmagnitude 710. The reader can also read a portion of the spiral 230 todetermine a spiral magnitude 720. As shown in FIG. 7, the spiralmagnitude 710 and the spiral magnitude 720 can be integrated todetermine integrated spiral magnitudes 715 and 725, respectively. Theintegrated magnitudes are inversely proportional to the slope of aspiral. The integrated magnitudes can depend on, for example, headcharacteristics (e.g., reader and writer widths) and can be used todetermine a relative measurement of the slope of a spiral.

FIGS. 8A and 8B are plots showing example read signals 800 and 810, andexample spiral windows 820 and 830. In some implementations, noise thatis included in the integrated magnitudes can be removed. For example,the processing module 174 can include a correction submodule thatdetermines and removes the noise from the integrated magnitudes. Spiralwindows can be used to determine noise in the integrated magnitude.

In some implementations, the noise can be determined using anintegration window 820 (e.g., a spiral window) centered on a spiralsignal 840 (e.g., a spiral in the read signal). The magnitudemeasurements at the edges 850 of the integration window 820 may notcontain a spiral signal. A value of the magnitude, or an average ofvalues of magnitudes, at the edges of the integration window 820 can bedetermined. The value or the average can be multiplied by a number ofsamples in the integration window 820 to determine the noise in theintegration window 820. In some implementations, a minimum magnitudemeasurement in an integration window 820 can be used to determine thenoise. The minimum magnitude measurement may not include a spiralsignal. The noise can be calculated by multiplying the minimum magnitudemeasurement by the number of samples in a window. In someimplementations, the integration window 830 can be moved to a locationon the read signal that does not include a spiral (e.g., the spiralsignal 840) or a servo track signal (e.g., a signal indicating a servotrack). The integrated magnitude of the integration window 830 at thatnon-spiral location can be used to determine the noise. Otherimplementations are possible. The noise can be subtracted from theintegrated magnitude.

FIG. 9 is a flow chart showing another example process 900 fordetermining a slope of a spiral. The process 900 includes determining910 an integrated magnitude of a first signal that includes a spiral.For example, the processing module 174 can determine an integratedmagnitude of a first signal that includes a spiral. Noise in theintegrated magnitude is determined 920. For example, the processingmodule 174 can determine noise in the integrated magnitude. Noise fromthe integrated magnitude is removed 930. For example, the calibrationmodule 172 can remove noise from the integrated magnitude.

In some implementations, the slope can be determined by determining a“red-shift” of the pattern within the spiral.

FIG. 10 is a flow chart showing another example process 1000 fordetermining a slope of a spiral. The process 1000 can determine a slopeof a spiral by determining a “red-shift” of the pattern within thespiral. The process 1000 includes determining 1010 a predicted frequencyfor writing a spiral. For example, the calibration module 172 candetermine a predicted frequency for writing a spiral. An actualfrequency of the spiral is determined 1020. For example, the processingmodule 174 can determine an actual frequency of the spiral, includingdetermining a time between sync patterns of the spiral. A differencebetween a target velocity and an actual velocity is determined 1030. Forexample, a detection submodule of the processing module 174 candetermine a difference between a target velocity and an actual velocity.The difference between the predicted frequency and the actual frequencycan be proportional to the difference between the target velocity andthe actual velocity.

The slope and a target slope of a spiral can be used to calibrate radialspacing between servo tracks. In some implementations, the ratio of thetarget slope to the slope (e.g., a measured slope) can be used to scaletarget timing information (e.g., the predetermined amount of time). Forexample, the calibration module 172 can include a scaling submodule thatscales the target timing information. The target timing information canbe scaled to produce calibrated timing information according to theequation:

${{calibrated\_ timing}{\_ information}} = {{target\_ timing}{{\_ information} \cdot {\frac{target\_ slope}{slope}.}}}$

The calibrated timing information can be used to determine the radialspacing between servo tracks, as described previously. If the slope isgreater than the target slope, then the time can be reduced (e.g., t1 inFIG. 4A). For example, if the spiral 230 of FIG. 4B has the targetslope, and the slope of the spiral 210 of FIG. 4A is greater than thetarget slope of FIG. 4B, then the target timing information 12 can bescaled to produce the calibrated timing information t1. If the slope isless than the target slope, then the time can be increased. As anotherexample, if t1 represents the target timing information and the spiral210 has the target slope, then t1 can be scaled to produce thecalibrated timing information t2 for the spiral 230.

In some implementations, a target track pitch can be scaled to determinethe radial spacing. For example, the calibration module 172 can includea scaling submodule that scales the target track pitch. The target trackpitch can be scaled to produce a calibrated track pitch according to theequation:

${{calibrated\_ track}{\_ pitch}} = {{target\_ track}{{\_ pitch} \cdot {\frac{slope}{target\_ slope}.}}}$

The calibrated track pitch can be used to determine the radial spacingbetween servo tracks. If the slope is less than the target slope, thenthe target track pitch (e.g., radial track density) is decreased toproduce the calibrated track pitch. If the slope is greater than thetarget slope, then the target track pitch is increased to produce thecalibrated track pitch.

FIG. 11 is a flow chart showing an example process 1100 for calibratingradial spacing between servo tracks. The process 1100 includesdetermining 1110 a slope of a spiral. For example, the slope of thespiral can be determined using one or more of the implementationsdescribed previously. Radial spacing between servo tracks is calibrated1120 using the slope and a target slope. For example, the calibrationmodule 172 can be used to calibrate the radial spacing between servotracks using the slope and a target slope.

FIGS. 12A-12G show various example implementations of the describedsystems and techniques. Referring now to FIG. 12A, the described systemsand techniques can be implemented in a hard disk drive (HDD) 1200. Thedescribed systems and techniques may be implemented in either or bothsignal processing and/or control circuits, which are generallyidentified in FIG. 12A at 1202. In some implementations, the signalprocessing and/or control circuit 1202 and/or other circuits (not shown)in the HDD 1200 may process data, perform coding and/or encryption,perform calculations, and/or format data that is output to and/orreceived from a magnetic storage medium 1206.

The HDD 1200 may communicate with a host device (not shown) such as acomputer, mobile computing devices such as personal digital assistants,cellular phones, media or MP3 players and the like, and/or other devicesvia one or more wired or wireless communication links 1208. The HDD 1200may be connected to memory 1209 such as random access memory (RAM), lowlatency nonvolatile memory such as flash memory, read only memory (ROM)and/or other suitable electronic data storage.

Referring now to FIG. 12B, the described systems and techniques can beimplemented in a digital versatile disc (DVD) drive 1210. The describedsystems and techniques may be implemented in either or both signalprocessing and/or control circuits, which are generally identified inFIG. 12B at 1212, and/or mass data storage of the DVD drive 1210. Thesignal processing and/or control circuit 1212 and/or other circuits (notshown) in the DVD drive 1210 may process data, perform coding and/orencryption, perform calculations, and/or format data that is read fromand/or data written to an optical storage medium 1216. In someimplementations, the signal processing and/or control circuit 1212and/or other circuits (not shown) in the DVD drive 1210 can also performother functions such as encoding and/or decoding and/or any other signalprocessing functions associated with a DVD drive.

The DVD drive 1210 may communicate with an output device (not shown)such as a computer, television or other device via one or more wired orwireless communication links 1217. The DVD drive 1210 may communicatewith mass data storage 1218 that stores data in a nonvolatile manner.The mass data storage 1218 may include a hard disk drive (HDD). The HDDmay have the configuration shown in FIG. 12A. The HDD may be a mini HDDthat includes one or more platters having a diameter that is smallerthan approximately 1.8″. The DVD drive 1210 may be connected to memory1219 such as RAM, ROM, low latency nonvolatile memory such as flashmemory and/or other suitable electronic data storage.

Referring now to FIG. 12C, the described systems and techniques can beimplemented in a high definition television (HDTV) 1220. The describedsystems and techniques may be implemented in either or both signalprocessing and/or control circuits, which are generally identified inFIG. 12C at 1222, a WLAN interface and/or mass data storage of the HDTV1220. The HDTV 1220 receives HDTV input signals in either a wired orwireless format and generates HDTV output signals for a display 1226. Insome implementations, signal processing circuit and/or control circuit1222 and/or other circuits (not shown) of the HDTV 1220 may processdata, perform coding and/or encryption, perform calculations, formatdata and/or perform any other type of HDTV processing that may berequired.

The HDTV 1220 may communicate with mass data storage 1227 that storesdata in a nonvolatile manner such as optical and/or magnetic storagedevices. At least one HDD may have the configuration shown in FIG. 12Aand/or at least one DVD drive may have the configuration shown in FIG.12B. The HDD may be a mini HDD that includes one or more platters havinga diameter that is smaller than approximately 1.8″. The HDTV 1220 may beconnected to memory 1228 such as RAM, ROM, low latency nonvolatilememory such as flash memory and/or other suitable electronic datastorage. The HDTV 1220 also may support connections with a WLAN via aWLAN interface 1229.

Referring now to FIG. 12D, the described systems and techniques may beimplemented in a control system of a vehicle 1230, a WLAN interfaceand/or mass data storage of the vehicle control system. In someimplementations, the described systems and techniques may be implementedin a powertrain control system 1232 that receives inputs from one ormore sensors 1236 such as temperature sensors, pressure sensors,rotational sensors, airflow sensors and/or any other suitable sensorsand/or that generates one or more output control signals such as engineoperating parameters, transmission operating parameters, brakingparameters, and/or other control signals to one or more output devices1238.

The described systems and techniques may also be implemented in othercontrol systems 1240 of the vehicle 1230. The control system 1240 maylikewise receive signals from input sensors 1242 and/or output controlsignals to one or more output devices 1244. In some implementations, thecontrol system 1240 may be part of an anti-lock braking system (ABS), anavigation system, a telematics system, a vehicle telematics system, alane departure system, an adaptive cruise control system, a vehicleentertainment system such as a stereo, DVD, compact disc and the like.Still other implementations are contemplated.

The powertrain control system 1232 may communicate with mass datastorage 1246 that stores data in a nonvolatile manner. The mass datastorage 1246 may include optical and/or magnetic storage devices forexample hard disk drives and/or DVD drives. At least one HDD may havethe configuration shown in FIG. 12A and/or at least one DVD drive mayhave the configuration shown in FIG. 12B. The HDD may be a mini HDD thatincludes one or more platters having a diameter that is smaller thanapproximately 1.8″. The powertrain control system 1232 may be connectedto memory 1247 such as RAM, ROM, low latency nonvolatile memory such asflash memory and/or other suitable electronic data storage. Thepowertrain control system 1232 also may support connections with a WLANvia a WLAN interface 1248. The control system 1240 may also include massdata storage, memory and/or a WLAN interface (all not shown).

Referring now to FIG. 12E, the described systems and techniques can beimplemented in a cellular phone 1250 that may include a cellular antenna1251. The described systems and techniques may be implemented in eitheror both signal processing and/or control circuits, which are generallyidentified in FIG. 12E at 1252, a WLAN interface and/or mass datastorage of the cellular phone 1250. In some implementations, thecellular phone 1250 includes a microphone 1256, an audio output 1258such as a speaker and/or audio output jack, a display 1260 and/or aninput device 1262 such as a keypad, pointing device, voice actuationand/or other input device. The signal processing and/or control circuits1252 and/or other circuits (not shown) in the cellular phone 1250 mayprocess data, perform coding and/or encryption, perform calculations,format data and/or perform other cellular phone functions.

The cellular phone 1250 may communicate with mass data storage 1264 thatstores data in a nonvolatile manner such as optical and/or magneticstorage devices for example hard disk drives and/or DVD drives. At leastone HDD may have the configuration shown in FIG. 12A and/or at least oneDVD drive may have the configuration shown in FIG. 12B. The HDD may be amini HDD that includes one or more platters having a diameter that issmaller than approximately 1.8″. The cellular phone 1250 may beconnected to memory 1266 such as RAM, ROM, low latency nonvolatilememory such as flash memory and/or other suitable electronic datastorage. The cellular phone 1250 also may support connections with aWLAN via a WLAN interface 1268.

Referring now to FIG. 12F, the described systems and techniques can beimplemented in a set top box 1280. The described systems and techniquesmay be implemented in either or both signal processing and/or controlcircuits, which are generally identified in FIG. 12F at 1284, a WLANinterface and/or mass data storage of the set top box 1280. The set topbox 1280 receives signals from a source 1282 such as a broadband sourceand outputs standard and/or high definition audio/video signals suitablefor a display 1288 such as a television and/or monitor and/or othervideo and/or audio output devices. The signal processing and/or controlcircuits 1284 and/or other circuits (not shown) of the set top box 1280may process data, perform coding and/or encryption, performcalculations, format data and/or perform any other set top box function.

The set top box 1280 may communicate with mass data storage 1290 thatstores data in a nonvolatile manner. The mass data storage 1290 mayinclude optical and/or magnetic storage devices for example hard diskdrives and/or DVD drives. At least one HDD may have the configurationshown in FIG. 12A and/or at least one DVD drive may have theconfiguration shown in FIG. 12B. The HDD may be a mini HDD that includesone or more platters having a diameter that is smaller thanapproximately 1.8″. The set top box 1280 may be connected to memory 1294such as RAM, ROM, low latency nonvolatile memory such as flash memoryand/or other suitable electronic data storage. The set top box 1280 alsomay support connections with a WLAN via a WLAN interface 1296.

Referring now to FIG. 12G, the described systems and techniques can beimplemented in a media player 1300. The described systems and techniquesmay be implemented in either or both signal processing and/or controlcircuits, which are generally identified in FIG. 12G at 1304, a WLANinterface and/or mass data storage of the media player 1300. In someimplementations, the media player 1300 includes a display 1307 and/or auser input 1308 such as a keypad, touchpad and the like. In someimplementations, the media player 1300 may employ a graphical userinterface (GUI) that typically employs menus, drop down menus, iconsand/or a point-and-click interface via the display 1307 and/or userinput 1308. The media player 1300 further includes an audio output 1309such as a speaker and/or audio output jack. The signal processing and/orcontrol circuits 1304 and/or other circuits (not shown) of the mediaplayer 1300 may process data, perform coding and/or encryption, performcalculations, format data and/or perform any other media playerfunction.

The media player 1300 may communicate with mass data storage 1310 thatstores data such as compressed audio and/or video content in anonvolatile manner. In some implementations, the compressed audio filesinclude files that are compliant with MP3 (Moving Picture experts groupaudio layer 3) format or other suitable compressed audio and/or videoformats. The mass data storage may include optical and/or magneticstorage devices for example hard disk drives and/or DVD drives. At leastone HDD may have the configuration shown in FIG. 12A and/or at least oneDVD drive may have the configuration shown in FIG. 12B. The HDD may be amini HDD that includes one or more platters having a diameter that issmaller than approximately 1.8″. The media player 1300 may be connectedto memory 1314 such as RAM, ROM, low latency nonvolatile memory such asflash memory and/or other suitable electronic data storage. The mediaplayer 1300 also may support connections with a WLAN via a WLANinterface 1316. Still other implementations in addition to thosedescribed above are contemplated.

A few embodiments have been described in detail above, and variousmodifications are possible. The disclosed subject matter, including thefunctional operations described in this specification, can beimplemented in electronic circuitry, computer hardware, firmware,software, or in combinations of them, such as the structural meansdisclosed in this specification and structural equivalents thereof,including potentially a program operable to cause one or more dataprocessing apparatus to perform the operations described (such as aprogram encoded in a computer-readable medium, which can be a memorydevice, a storage device, a machine-readable storage substrate, or otherphysical, machine-readable medium, or a combination of one or more ofthem).

The term “data processing apparatus” encompasses all apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them.

A program (also known as a computer program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, or declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A program does notnecessarily correspond to a file in a file system. A program can bestored in a portion of a file that holds other programs or data (e.g.,one or more scripts stored in a markup language document), in a singlefile dedicated to the program in question, or in multiple coordinatedfiles (e.g., files that store one or more modules, sub programs, orportions of code). A program can be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of what may be claimed, but ratheras descriptions of features that may be specific to particularembodiments. Certain features that are described in this specificationin the context of separate embodiments can also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments.

Other embodiments fall within the scope of the following claims.

What is claimed is:
 1. A method comprising: measuring a slope of aspiral written to a machine readable medium; and adjusting a parameterin accordance with the measured slope to calibrate spacing of servotracks, with respect to variation between a target slope and themeasured slope for the spiral, for writing the servo tracks to themachine readable medium using the spiral as a reference and the adjustedparameter to generate a same radial spacing between servo tracks fromspirals with different slopes.
 2. The method of claim 1, wherein theadjusting comprises scaling target timing information.
 3. The method ofclaim 1, wherein measuring the slope comprises: measuring the slope forat least one location of the machine readable medium using a firstmethod and a second method; establishing a reference for the secondmethod based on the measuring for the at least one location of themachine readable medium; and measuring a slope of another spiral foranother location of the machine readable medium using the second methodand the established reference.
 4. The method of claim 3, wherein thefirst method comprises measuring a mechanical transfer function gain,and the second method comprises measuring spiral integrated magnitude.5. The method of claim 1, wherein measuring the slope comprisesdetermining a gain of a subsystem that includes (i) a head associatedwith the machine readable medium and (ii) drive electronics for thehead.
 6. The method of claim 5, wherein determining the gain comprises:injecting a signal into a controller, determining a control command anda position error; and determining a ratio of the position error to thecontrol command.
 7. The method of claim 1, wherein measuring the slopecomprises determining an integrated magnitude of a signal for thespiral.
 8. The method of claim 7, further comprising: determining noisein the integrated magnitude; and removing the noise from the integratedmagnitude.
 9. The method of claim 1, wherein measuring the slopecomprises: determining a predicted frequency for writing the spiral;determining an actual frequency of the spiral; and determining adifference between a target velocity and an actual velocity, wherein thedifference is proportional to a difference between the predictedfrequency and the actual frequency.
 10. The method of claim 9, whereindetermining the actual frequency of the spiral comprises determining atime between sync patterns of the spiral.
 11. A system comprising:processing circuitry configured to measure a slope of a spiral writtento a machine readable medium; and calibration circuitry configured toadjust a parameter in accordance with the measured slope to calibratespacing of servo tracks, with respect to variation between a targetslope and the measured slope, for writing the servo tracks to themachine readable medium using the spiral as a reference and the adjustedparameter to generate a same radial spacing between servo tracks fromspirals with different slopes.
 12. The system of claim 11, wherein thecalibration circuitry is configured to scale target timing information.13. The system of claim 11, wherein the processing circuitry isconfigured to: measure the slope for at least one location of themachine readable medium using a first method and a second method;establish a reference for the second method based on the measurement forthe at least one location of the machine readable medium; and measure aslope of another spiral for another location of the machine readablemedium using the second method and the established reference.
 14. Thesystem of claim 13, wherein the first method comprises measuring amechanical transfer function gain, and the second method comprisesmeasuring spiral integrated magnitude.
 15. The system of claim 11,wherein the processing circuitry is configured to measure the slope bydetermining a gain of a subsystem that includes (i) a head associatedwith the machine readable medium and (ii) drive electronics for thehead.
 16. The system of claim 15, wherein determining the gaincomprises: injecting a signal into a controller, determining a controlcommand and a position error; and determining a ratio of the positionerror to the control command.
 17. The system of claim 11, wherein theprocessing circuitry is configured to measure the slope by determiningan integrated magnitude of a signal for the spiral.
 18. The system ofclaim 17, wherein the processing circuitry is configured to determinenoise in the integrated magnitude and remove the noise from theintegrated magnitude.
 19. The system of claim 11, wherein the processingcircuitry is configured to measure the slope by: determining a predictedfrequency for writing the spiral; determining an actual frequency of thespiral; and determining a difference between a target velocity and anactual velocity, wherein the difference is proportional to a differencebetween the predicted frequency and the actual frequency.
 20. The systemof claim 19, wherein determining the actual frequency of the spiralcomprises determining a time between sync patterns of the spiral.